﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

using ZhimeiSoft.CharmManager.DOL;

namespace ZhimeiSoft.CharmManager.Server.BLL.Interface
{
    public interface ICustomerServiceItemBLL
    {
        /// <summary>
        /// 插入会员服务项目信息
        /// </summary>
        /// <param name="csi">会员服务项目信息类</param>
        void InsertCustomerServiceItem(DBEntityCustomerServiceItem csi);

        /// <summary>
        /// 更新会员服务项目信息
        /// </summary>
        /// <param name="csi">会员服务项目信息类</param>
        void UpdateCustomerServiceItem(DBEntityCustomerServiceItem csi);

        /// <summary>
        /// 更新会员最近一次服务时间
        /// </summary>
        /// <param name="iCustomerServiceItemID">会员服务项目ID</param>
        /// <param name="lastServiceTime">最近一次服务时间</param>
        void UpdateLastServiceTime(int iCustomerServiceItemID, DateTime lastServiceTime);

        /// <summary>
        /// 删除会员服务项目信息
        /// </summary>
        /// <param name="iCustomerServiceItemID">会员服务项目ID</param>
        void DeleteCustomerServiceItem(int iCustomerServiceItemID);

        /// <summary>
        /// 查询会员服务项目信息
        /// </summary>
        /// <param name="sFilter">过滤条件</param>
        /// <returns>会员服务项目信息数据集</returns>
        DataSet QueryCustomerServiceItem(string sFilter);
        /// <summary>
        /// 会员服务扣减
        /// </summary>
        /// <param name="customServiceItemID">服务项目ID</param>
        /// <param name="minusRemain">扣减次数</param>
        /// <param name="lastServiceTime">服务时间</param>
        /// <param name="cMemo">说明</param>
        /// <param name="employeeID">员工ID</param>
        /// <returns></returns>
        void CompleteCustomServiceItem(int customServiceItemID, int minusRemain, string lastServiceTime,
            string cMemo, string employeeID, DBEntityCustomerServiceItem customerServiceItem, int reservationID);

        /// <summary>
        /// 更新账号余额
        /// </summary>
        /// <param name="customerServiceItemID">会员服务项目ID</param>
        /// <param name="money">金额</param>
        void UpdateAccountMoney(int customerServiceItemID, decimal money);
        /// <summary>
        /// 根据用户疗程项目查询消费记录
        /// </summary>
        /// <param name="customServiceItemID"></param>
        /// <returns></returns>
        DataSet QueryCustomServiceItemConsume(int customServiceItemID);
        /// <summary>
        /// 根据用户预约记录查询扣减次数
        /// </summary>
        /// <param name="customServiceItemID"></param>
        /// <returns></returns>
        DataSet QeuryCustomServiceItemConsumeReservationID(int reservationID);
        /// <summary>
        /// 删除会员服务项目检测
        /// </summary>
        /// <param name="customServiceItemID"></param>
        /// <returns></returns>
        bool CheckDeleteCustomServiceItem(int customServiceItemID);
    }
}
